home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 008a / intr26b.zip / MEMORY.LST < prev    next >
File List  |  1991-06-07  |  22KB  |  493 lines

  1. [This file was provided by Robin Walker.  --Ralf]
  2.  
  3. Format of BIOS Data Segment at segment 40h:
  4.         {items in curly braces not documented by IBM}
  5. Offset    Size    Description
  6.  00h    WORD    Base I/O address of 1st serial I/O port, zero if none
  7.  02h    WORD    Base I/O address of 2nd serial I/O port, zero if none
  8.  04h    WORD    Base I/O address of 3rd serial I/O port, zero if none
  9.  06h    WORD    Base I/O address of 4th serial I/O port, zero if none
  10.             Note: Above fields filled in turn by POST as it finds serial
  11.             ports. POST never leaves gaps. DOS and BIOS serial device
  12.             numbers may be redefined by re-assigning these fields.
  13.  08h    WORD    Base I/O address of 1st parallel I/O port, zero if none
  14.  0Ah    WORD    Base I/O address of 2nd parallel I/O port, zero if none
  15.  0Ch    WORD    Base I/O address of 3rd parallel I/O port, zero if none
  16.  0Eh    WORD    [non-PS] Base I/O address of 4th parallel I/O port, zero if none
  17.         [PS] Segment of Extended BIOS Data Segment
  18.             Note: Above fields filled in turn by POST as it finds
  19.             parallel ports. POST never leaves gaps. DOS and BIOS
  20.             parallel device numbers may de redefined by re-assigning
  21.             these fields.
  22.  10h    WORD    Installed hardware:
  23.             bits 15-14: number of parallel devices
  24.             bit     13: [Conv] Internal modem
  25.             bit     12: reserved
  26.             bits 11- 9: number of serial devices
  27.             bit      8: reserved
  28.             bits  7- 6: number of diskette drives minus one
  29.             bits  5- 4: Initial video mode:
  30.                     00b = EGA,VGA,PGA
  31.                     01b = 40 x 25 color
  32.                     10b = 80 x 25 color
  33.                     11b = 80 x 25 mono
  34.             bit      3: reserved
  35.             bit      2: [PS] =1 if pointing device
  36.                 [non-PS] reserved
  37.             bit      1: =1 if math co-processor
  38.             bit      0: =1 if diskette available for boot
  39.  12h    BYTE    [Conv] POST status
  40.         [AT] {Manufacturing test initialisation flags}
  41.  13h    WORD    Base memory size in kbytes (0-640)
  42.  15h    BYTE    [AT] {Manufacturing test scratch pad}
  43.  16h    BYTE    [AT] {Manufacturing test scratch pad}
  44.         [PS/2 Mod 30] BIOS control flags
  45.  17h    BYTE    Keyboard status flags 1:
  46.             bit 7 =1 INSert active
  47.             bit 6 =1 Caps Lock active
  48.             bit 5 =1 Num Lock active
  49.             bit 4 =1 Scroll Lock active
  50.             bit 3 =1 either Alt pressed
  51.             bit 2 =1 either Ctrl pressed
  52.             bit 1 =1 Left Shift pressed
  53.             bit 0 =1 Right Shift pressed
  54.  18h    BYTE    Keyboard status flags 2:
  55.             bit 7 =1 INSert pressed
  56.             bit 6 =1 Caps Lock pressed
  57.             bit 5 =1 Num Lock pressed
  58.             bit 4 =1 Scroll Lock pressed
  59.             bit 3 =1 Pause state active
  60.             bit 2 =1 Sys Req pressed
  61.             bit 1 =1 Left Alt pressed
  62.             bit 0 =1 Left Ctrl pressed
  63.  19h    BYTE    Keyboard: Alt-nnn keypad workspace
  64.  1Ah    WORD    Keyboard: ptr to next character in keyboard buffer
  65.  1Ch    WORD    Keyboard: ptr to first free slot in keyboard buffer
  66.  1Eh 16 WORDs    Keyboard circular buffer (but see 80h, 82h for override)
  67.  3Eh    BYTE    Diskette recalibrate status:
  68.             bit 7 =1 Diskette hardware interrupt occurred
  69.             bits 6-4 reserved
  70.             bit 3 =1 Recalibrate diskette 3
  71.             bit 2 =1 Recalibrate diskette 2
  72.             bit 1 =1 Recalibrate diskette 1
  73.             bit 0 =1 Recalibrate diskette 0
  74.  3Fh    BYTE    Diskette motor status:
  75.             bit 7 =1 current operation is write or format
  76.               =0 current operation is read or verify
  77.             bit 6    reserved
  78.             bits 5-4 diskette drive number selected (0-3)
  79.             bit 3 =1 diskette 3 motor on
  80.             bit 2 =1 diskette 2 motor on
  81.             bit 1 =1 diskette 1 motor on
  82.             bit 0 =1 diskette 0 motor on
  83.  40h    BYTE    Diskette motor turn-off time-out count
  84.  41h    BYTE    Diskette last operation status (0 = OK)
  85.             bit 7 =1 drive not ready
  86.             bit 6 =1 seek error
  87.             bit 5 =1 general controller failure
  88.             bits 4-0:
  89.                 00h no error
  90.                 01h invalid request
  91.                 02h address mark not found
  92.                 03h write-protect error
  93.                 04h sector not found
  94.                 06h diskette change line active
  95.                 08h DMA overrun
  96.                 09h DMA across 64k boundary
  97.                 0Ch media type unknown
  98.                 10h CRC error on read
  99.  42h  7 BYTEs    Diskette/Fixed disk status/command bytes
  100.  49h    BYTE    Video current mode
  101.  4Ah    WORD    Video columns on screen
  102.  4Ch    WORD    Video page (regen buffer) size in bytes
  103.  4Eh    WORD    Video current page start address in regen buffer
  104.  50h 16 BYTEs    Video cursor position (col, row) for eight pages, 0 based
  105.  60h    WORD    Video cursor type, 6845 compatible, hi=startline, lo=endline
  106.  62h    BYTE    Video current page number
  107.  63h    WORD    Video CRT controller base address: color=03D4h, mono=03B4h
  108.  65h    BYTE    Video current setting of mode select register 03D8h/03B8h
  109.  66h    BYTE    Video current setting of CGA palette register 03D9h
  110.  67h    DWORD    POST real mode re-entry point after certain resets
  111.  6Bh    BYTE    POST last unexpected interrupt
  112.  6Ch    DWORD    Timer ticks since midnight
  113.  70h    BYTE    Timer overflow, non-zero if has counted past midnight
  114.  71h    BYTE    Ctrl-Break flag: bit 7=1
  115.  72h    WORD    POST reset flag:
  116.             = 1234h if to bypass memory test (warm boot)
  117.             = 4321h [PS/2 MCA only] if to preserve memory
  118.             = 5678h [Conv] system suspended
  119.             = 9ABCh [Conv] manufacturing test mode
  120.             = ABCDh [Conv] POST loop mode
  121.             =    64h Burn-in mode
  122.  74h    BYTE    Fixed disk last operation status: {except ESDI drives}
  123.             00h no error
  124.             01h invalid function request
  125.             02h address mark not found
  126.             03h write protect error
  127.             04h sector not found
  128.             05h reset failed
  129.             07h drive parameter activity failed
  130.             08h DMA overrun
  131.             09h DMA data boundary error
  132.             0Ah bad sector flag detected
  133.             0Bh bad track detected
  134.             0Dh invalid number of sectors for Format
  135.             0Eh control data address mark detected
  136.             0Fh DMA arbitration level out of range
  137.             10h uncorrectable ECC or CRC error
  138.             11h ECC corrected data error
  139.             20h general controller failed
  140.             40h seek failed
  141.             80h time out
  142.             AAh drive not ready
  143.             BBh undefined error
  144.             CCh write fault on selected drive
  145.             E0h status error/error register is zero
  146.             FFh sense failed
  147.  75h    BYTE    Fixed disk: number of fixed disk drives
  148.  76h    BYTE    Fixed disk: control byte    {IBM document only for XT}
  149.  77h    BYTE    Fixed disk: I/O port offset {IBM document only for XT}
  150.  78h  3 BYTEs    Parallel devices 1-3 time-out counters
  151.  7Bh    BYTE    parallel device 4 time-out counter [non-PS]
  152.         bit 5 set if Virtual DMA Spec supported [PS] (see INT 4B)
  153.  7Ch  4 BYTEs    Serial devices 1-4 time-out counters
  154.  80h    WORD    Keyboard buffer start as offset from segment 40h (normally 1Eh)
  155.  82h    WORD    Keyboard buffer end+1 as offset from segment 40h (normally 3Eh)
  156.         [XT BIOS dated 11/08/82 ends here]
  157.  84h    BYTE    Video EGA/MCGA/VGA rows on screen minus one
  158.  85h    WORD    Video EGA/MCGA/VGA character height in scan-lines
  159.  87h    BYTE    Video EGA/VGA control: [MCGA: =00h]
  160.             bit 7:  =1 if not to clear RAM (see INT 10h, AH=00h)
  161.             bits 6-5: RAM on adapter = (this field + 1) * 64K
  162.             bit 4:  reserved
  163.             bit 3:  =0 if EGA/VGA video system active, =1 if inactive
  164.             bit 2:  =1 if to wait for display enable (what means this?)
  165.             bit 1:  =0 for color or ECD monitor, =1 for mono monitor
  166.             bit 0:  =0 alphanumeric cursor emulation enabled, =1 not.
  167.                 When enabled, text mode cursor size (INT 10,AH=01h)
  168.                 settings looking like CGA ones are translated to
  169.                 equivalent EGA/VGA ones.
  170.  88h    BYTE    Video EGA/VGA switches: [MCGA: reserved]
  171.             bits 7-4: power-on state of feature connector bits 3-0
  172.             bits 3-0: configuration switches 4-1 (=0 on, =1 off)
  173.               Values as read:
  174.             0h Pri MDA,        Sec EGA+old color display 40 x 25
  175.             1h Pri MDA,        Sec EGA+old color display 80 x 25
  176.             2h Pri MDA,        Sec EGA+ECD normal mode (CGA emul)
  177.             3h Pri MDA,        Sec EGA+ECD enhanced mode
  178.             4h Pri CGA 40 x 25, Sec EGA mono display
  179.             5h Pri CGA 80 x 25, Sec EGA mono display
  180.             6h Pri EGA+old color display 40 x 25,  Sec MDA
  181.             7h Pri EGA+old color display 80 x 25,  Sec MDA
  182.             8h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  183.             9h Pri EGA+ECD enhanced mode,           Sec MDA
  184.             Ah Pri EGA mono display,           Sec CGA 40 x 25
  185.             Bh Pri EGA mono display,           Sec CGA 80 x 25
  186.             When bit4 of 40h:89h is 0, VGA emulates 350-line EGA if
  187.             this byte is x3h or x9h, otherwise emulates 200-line CGA in
  188.             400-line double scan. VGA resets this byte to x9h after the
  189.             mode set.
  190.  89h    BYTE    Video MCGA/VGA mode-set option control:
  191.             bits 7 and 4:
  192.             0 0  350-line mode requested
  193.             0 1  400-line mode at next mode set
  194.             1 0  200-line mode requested
  195.             1 1  reserved
  196.             Apparently VGA BIOS mode set disregards bit 7 and uses
  197.             byte 40h:88h to determine 200/350 selection when bit 4
  198.             is zero. Presumably bit 7 is a convenience for other
  199.             purposes. Bit 7 is reset to zero after the mode set.
  200.             bit 6:  =1 if display switching enabled, =0 if disabled
  201.             bit 5:  reserved
  202.             bit 4:  [VGA]  =1 if to use 400-line mode at next mode set
  203.                    =0 if to emulate EGA at next mode set
  204.                       This bit set to 1 after the mode set.
  205.                 [MCGA] =1 use 400-line mode at next mode set
  206.                    =0 emulate CGA, digital monitor, 200 lines,
  207.                       8 x 8 text font at next mode set
  208.                       Bit unchanged by mode set.
  209.             bit 3:  =0 if default palette loading enabled at mode set
  210.             bit 2:  =1 if mono display, =0 if color display
  211.             bit 1:  =1 if gray scale summing enabled, =0 if disabled
  212.             bit 0:  [VGA] =1 if VGA active, =0 if not
  213.                 [MCGA] reserved, zero
  214.  8Ah    BYTE    Video [MCGA/VGA]: index into Display Combination Code table
  215.  8Bh    BYTE    Diskette media control [not XT]:
  216.             bits 7-6: Last data rate set by controller:
  217.                   00=500kbps, 01=300kbps, 10=250kbps, 11=reserved
  218.             bits 5-4: Last diskette drive step rate selected
  219.             bits 3-2: {Data rate at start of operation}
  220.             bits 1-0: reserved
  221.  8Ch    BYTE    Fixed disk controller status [not XT]
  222.  8Dh    BYTE    Fixed disk controller Error Status [not XT]
  223.  8Eh    BYTE    Fixed disk Interrupt Control [not XT]
  224.  8Fh    BYTE    Diskette controller information [not XT]:
  225.             bit 7:  reserved
  226.             bit 6:  =1 drive 1 determined
  227.             bit 5:  =1 drive 1 is multi-rate, valid if drive determined
  228.             bit 4:  =1 drive 1 supports 80 tracks, always valid
  229.             bit 3:  reserved
  230.             bit 2:  =1 drive 0 determined
  231.             bit 1:  =1 drive 0 is multi-rate, valid if drive determined
  232.             bit 0:  =1 drive 0 supports 80 tracks, always valid
  233.  90h    BYTE    Diskette drive 0 media state
  234.  91h    BYTE    Diskette drive 1 media state
  235.             bits 7-6: Data rate: 00=500kbps, 01=300kbps, 10=250kbps
  236.             bit    5: =1 if double stepping reqd (e.g. 360kB in 1.2MB)
  237.             bit    4: =1 if media established
  238.             bit    3: reserved
  239.             bits 2-0: on exit from BIOS, contain:
  240.                 000 trying 360kB in 360kB
  241.                 001 trying 360kB in 1.2MB
  242.                 010 trying 1.2MB in 1.2MB
  243.                 011 360kB in 360kB established
  244.                 100 360kB in 1.2MB established
  245.                 101 1.2MB in 1.2MB established
  246.                 110 reserved
  247.                 111 all other formats/drives
  248.  92h    BYTE    Diskette drive 0 media state at start of operation
  249.  93h    BYTE    Diskette drive 1 media state at start of operation
  250.  94h    BYTE    Diskette drive 0 current track number
  251.  95h    BYTE    Diskette drive 1 current track number
  252.  96h    BYTE    Keyboard status byte 3
  253.             bit 7 =1 read-ID in progress
  254.             bit 6 =1 last code read was first of two ID codes
  255.             bit 5 =1 force Num Lock if read-ID and enhanced keyboard
  256.             bit 4 =1 enhanced keyboard installed
  257.             bit 3 =1 Right Alt pressed
  258.             bit 2 =1 Right Ctrl pressed
  259.             bit 1 =1 last code read was E0h
  260.             bit 1 =1 last code read was E1h
  261.  97h    BYTE    Keyboard status byte 2
  262.             bit 7 =1 keyboard transmit error flag
  263.             bit 6 =1 LED update in progress
  264.             bit 5 =1 RESEND received from keyboard
  265.             bit 4 =1 ACK received from keyboard
  266.             bit 3 reserved, must be zero
  267.             bit 2 Caps Lock LED
  268.             bit 1 Num Lock LED
  269.             bit 0 Scroll Lock LED
  270.  98h    DWORD    Timer2: [AT, PS exc Mod 30] ptr to user wait-complete flag
  271.                         (see INT 15, AX=8300h)
  272.  9Ch    DWORD    Timer2: [AT, PS exc Mod 30] user wait count in microseconds
  273.  A0h    BYTE    Timer2: [AT, PS exc Mod 30] Wait active flag:
  274.             bit 7 =1 wait time elapsed
  275.             bits 6-1 reserved
  276.             bit 0 =1 INT 15h, AH=86h has occurred
  277.  A1h  7 BYTEs    reserved for network adapters (oh really?)
  278.  A4h    DWORD    [PS/2 Mod 30] Saved Fixed Disk Interrupt Vector
  279.  A8h    DWORD    Video: EGA/MCGA/VGA ptr to Video Save Pointer Table (see below)
  280.  ACh-AFh    reserved
  281.  B0h    DWORD    ptr to 3363 Optical disk driver or BIOS entry point.
  282.             When 3363 BIOS present, the signature "OPTIC ",00h occurs 3
  283.             bytes beyond this entry point.
  284.             When 3363 BIOS and 3363 File System Driver present, the
  285.             signature "FILE SYSTEM DRIVER",00h occurs 3 bytes beyond
  286.             this entry point.
  287.  B4h    WORD    reserved
  288.  B6h  3 BYTEs    reserved for POST?
  289.  B9h  7 BYTEs    ???
  290.  C0h 14 BYTEs    reserved
  291.  CEh    WORD    count of days since last boot?
  292.  D0h-EFh    reserved
  293.  F0h-FFh    reserved for user
  294. 100h    BYTE    Print Screen Status byte
  295. 10Eh    BYTE    state of BREAK at start of BASICA.COM execution
  296. 10Fh    BYTE    flag: 02h if BASICA v2.10 running
  297. 116h    DWORD    INT 1Bh at start of BASICA.COM execution
  298. 11Ah    DWORD    INT 24h at start of BASICA.COM execution
  299.  
  300. Format of Extended BIOS Data Area (see 40:0Eh for ptr) [PS only]
  301. Offset    Size    Description
  302.  00h    BYTE    Length of EBDA in kilobytes
  303.  01h 15 BYTEs    reserved
  304.  17h    BYTE    Number of entries in POST error log (0-5)
  305.  18h  5 WORDs    POST error log (each word is a POST error number)
  306.  19h-21h    reserved
  307.  22h    DWORD    Pointing Device Driver entry point
  308.  26h    BYTE    Pointing Device Flags 1
  309.            bit 7:    =1 command in progress
  310.            bit 6:    =1 resend
  311.            bit 5:    =1 acknowledge
  312.            bit 4:    =1 error
  313.            bit 3:    =0 reserved
  314.            bits 2-0: index count
  315.  27h    BYTE    Pointing Device Flags 2
  316.            bit 7:    =1 device driver far call flag
  317.            bits 6-3: reserved
  318.            bits 2-0: package size
  319.  28h  7 BYTEs    Pointing Device Auxiliary Device Data
  320.  2Fh    BYTE    reserved
  321.  30h    DWORD    Vector for INT 07h stored here during 80387 interrupt
  322.  34h    DWORD    Vector for INT 01h stored here during INT 07h emulation
  323.  38h    BYTE    Scratchpad for 80287/80387 interrupt code
  324.  39h    WORD    Timer3: Watchdog timer initial count
  325.  3Bh    BYTE    ??? seen non-zero on Model 30
  326.  3Ch    BYTE    ???
  327.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0 (oh really?)
  328.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1 (oh really?)
  329.             Neither of above seen on any Model 30, 50, 60 yet.
  330.  5Dh-6Bh    ???
  331.  6Ch    BYTE    Fixed disk: (=FFh on ESDI systems)
  332.             bits 7-4: Channel number 00-0Fh
  333.             bits 3-0: DMA arbitration level 00-0Eh
  334.  6Dh and up:    ??? seen non-zero on Model 60
  335. 3F0h    BYTE    Fixed disk buffer (???!!!)
  336.  
  337. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  338. Offset    Size    Description
  339.  00h    DWORD    ptr to Video Parameter Table
  340.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  341.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  342.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  343.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  344.  14h    DWORD    reserved, zero
  345.  18h    DWORD    reserved, zero
  346. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  347.  
  348. Format of Secondary Video Save Pointer Table [VGA only]:
  349. Offset    Size    Description
  350.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  351.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  352.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  353.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  354.  0Eh    DWORD    reserved, zero
  355.  12h    DWORD    reserved, zero
  356.  16h    DWORD    reserved, zero
  357. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  358.  
  359. Format of Video Parameter Table [EGA, VGA only]:
  360. An array of 23 [EGA] or 29 [VGA] elements, each element being 64 bytes long.
  361. Elements appear in the order:
  362.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  363.  04h-0Eh    Modes 04h-0Eh
  364.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  365.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  366.  13h-16h    Modes 00h-03h in 350-line mode
  367.  17h        VGA Modes 00h or 01h in 400-line mode
  368.  18h        VGA Modes 02h or 03h in 400-line mode
  369.  19h        VGA Mode  07h in 400-line mode
  370.  1Ah-1Ch    VGA Modes 11h-13h
  371.  
  372. Format of Video Parameter Table element [EGA, VGA only]:
  373. Offset    Size    Description
  374.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  375.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  376.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  377.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  378.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  379.  09h    BYTE    Value for Miscellaneous Output Register
  380.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  381.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  382.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  383.  
  384. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  385.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  386.     - An array of 11 elements, each element being 32 bytes long.
  387.       Elements appear in the order:
  388.         Modes 00h,01h in 200-line mode for digital displays
  389.         Modes 00h,01h in 400-line mode for analog displays
  390.         Modes 02h,03h in 200-line mode for digital displays
  391.         Modes 02h,03h in 400-line mode for analog displays
  392.         Modes 04h,05h in 200-line mode for digital displays
  393.         Modes 04h,05h in 400-line mode for analog displays
  394.         Mode  06h in 200-line mode for digital displays
  395.         Mode  06h in 400-line mode for analog displays
  396.         Mode  11h
  397.         Mode  13h in 200-line mode for digital displays
  398.         Mode  13h in 400-line mode for analog displays
  399.  
  400. Format of Video Parameter Table element [MCGA only]:
  401. Offset    Size    Description
  402.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  403.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  404.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  405.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  406.  05h    WORD    ??? always zero
  407.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  408.  1Ch    BYTE    PEL Mask to port 3C6h
  409.  1Dh    BYTE    CGA Mode Control to port 3D8h
  410.  1Eh    BYTE    CGA Border Control to port 3D9h
  411.  1Fh    BYTE    Extended Mode Control to port 3DDh
  412.  
  413. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  414. Offset    Size    Description
  415.  00h 16 BYTEs    Last data written to Attribute Controller Palette Registers 0-15
  416.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  417.  11h-FFh    Reserved
  418.         Note: Need for table was that EGA registers were write-only.
  419.         Note: If default values (from the Video Parameter Table) are
  420.               over-ridden at a mode set by the VGA User Palette Profile
  421.               Table, then the Dynamic Save Area is updated with the
  422.               default values, not the User Profile ones.
  423.  
  424. Format of Alphanumeric Character Set Override:
  425. Offset    Size    Description
  426.  00h    BYTE    Length in bytes of each character in font table
  427.  01h    BYTE    Character generator RAM bank to load, 0=normal
  428.  02h    WORD    Number of characters in font table, normally 256
  429.  04h    WORD    Code of first character in font table, normally 0
  430.  06h    DWORD    ptr to font table
  431.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  432.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  433.     BYTE    FFh end of array
  434.  
  435. Format of Second Alphanumeric Character Set Override:
  436. Authorities differ, some say same as first override above, but IBM say:
  437. Offset    Size    Description
  438.  00h    BYTE    Length in bytes of each character in font table
  439.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  440.  02h    BYTE    reserved
  441.  03h    DWORD    ptr to font table
  442.  07h    BYTEs    Array of mode values to which this font is to pertain
  443.     BYTE    FFh end of array
  444.  
  445. Format of Graphics Character Set Override:
  446. Offset    Size    Description
  447.  00h    BYTE    Number of displayable character rows
  448.  01h    WORD    Length in bytes of each character in font table
  449.  03h    DWORD    ptr to font table
  450.  07h    BYTEs    Array of mode values to which this font is to pertain
  451.     BYTE    FFh end of array
  452.  
  453. Format of Display Combination Code Table [VGA only]:
  454. Offset    Size    Description
  455.  00h    BYTE    Number of entries in the DCC table at offset 04h
  456.  01h    BYTE    Version number
  457.  02h    BYTE    Maximum display type code that can appear in DCC table
  458.  03h    BYTE    reserved
  459.  04h    ARRAY OF 2 BYTEs Each pair of bytes gives a valid display combination
  460.             Meaning of each byte:
  461.             00h    no display
  462.             01h    MDA with mono display
  463.             02h    CGA with color display
  464.             03h    reserved
  465.             04h    EGA with color display
  466.             05h    EGA with mono display
  467.             06h    Professional Graphics Controller
  468.             07h    VGA with mono display
  469.             08h    VGA with color display
  470.             09h    reserved
  471.             0Ah    MCGA with digital color display
  472.             0Bh    MCGA with analog mono display
  473.             0Ch    MCGA with analog color display
  474.             FFh    unrecognised video system
  475.  
  476. Format of User Palette Profile Table [VGA only]:
  477. Offset    Size    Description
  478.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  479.                  00h=enable in monochrome alphanumeric modes only
  480.                  FFh=disable in all alphanumeric modes
  481.  01h    BYTE    reserved
  482.  02h    WORD    reserved
  483.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  484.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  485.  08h    DWORD    ptr to table of Attribute Controller registers to override
  486.             Table is an array of BYTEs.
  487.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  488.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  489.  10h    DWORD    ptr to table of video DAC Color registers to override
  490.             Table is ??? triplets ??? of BYTEs???
  491.  14h    BYTEs    array of mode values to which this profile is to pertain
  492.     BYTE    FFh end of array
  493.